Skip to content

fix: corrige blockers do outbox relay + separa documentação OpenAPI - #10

Merged
lmoraesdev merged 3 commits into
developfrom
fix/outbox-relay-blockers
Jul 22, 2026
Merged

fix: corrige blockers do outbox relay + separa documentação OpenAPI#10
lmoraesdev merged 3 commits into
developfrom
fix/outbox-relay-blockers

Conversation

@lmoraesdev

Copy link
Copy Markdown
Owner

Fixes — outbox relay

  • Renomeia log para LOG em OutboxRelay (Checkstyle ConstantName).
  • Troca KafkaTemplate<String, String> por KafkaTemplate<Object, Object> no OutboxRelay — o bean autoconfigurado pelo Spring Boot 3.5.3 é KafkaTemplate<Object, Object>, e generics invariantes faziam o contexto falhar no boot com NoSuchBeanDefinitionException.
  • Adiciona @EnableScheduling em PaymentApiApplication — sem isso o @Scheduled do OutboxRelay nunca disparava.
  • Adiciona @Mock OutboxEventPort em CreateChargeServiceTest e verifica a chamada a record(...) nos casos de sucesso — o construtor de CreateChargeService passou a exigir esse segundo parâmetro e o teste não estava atualizado, gerando NullPointerException.
  • Aplica spotless:apply nos arquivos do outbox.

Refactor — documentação OpenAPI

  • Move as anotações do SpringDoc (@Operation, @ApiResponses, @Tag) e do Spring MVC (@RequestMapping, @Valid, @RequestBody) do ChargeController para uma interface dedicada ChargeControllerDoc.
  • ChargeController passa a implementar a interface, mantendo apenas @RestController e a lógica do endpoint.

Validação

  • ./mvnw verify completo (spotless, checkstyle, testes unitários e de integração com Testcontainers): BUILD SUCCESS.
  • Aplicação subida localmente: /v3/api-docs e /swagger-ui continuam expondo a documentação completa do endpoint /charges.
  • POST /charges testado manualmente: retorna 201 e grava a linha correspondente em outbox_events.

…mocks de teste

- renomeia log para LOG em OutboxRelay (ConstantName do Checkstyle)
- troca KafkaTemplate<String,String> por KafkaTemplate<Object,Object>, único bean
  que o Spring Boot autoconfigura; generics invariantes faziam o contexto falhar
  no boot com NoSuchBeanDefinitionException
- adiciona @EnableScheduling na aplicação, sem o qual o @scheduled do
  OutboxRelay nunca disparava
- adiciona mock de OutboxEventPort em CreateChargeServiceTest e verifica a
  chamada a record() nos casos de sucesso
- aplica spotless nos arquivos do outbox introduzidos anteriormente
…erface dedicada

Cria ChargeControllerDoc com @RequestMapping, @Valid/@RequestBody e as
anotações @Operation/@ApiResponses/@tag do SpringDoc; ChargeController passa a
implementar a interface e mantém apenas @RestController e a lógica do
endpoint. Validado que /v3/api-docs e /swagger-ui continuam expondo a
documentação completa do endpoint /charges.
@lmoraesdev
lmoraesdev marked this pull request as draft July 22, 2026 21:32
@lmoraesdev
lmoraesdev marked this pull request as ready for review July 22, 2026 21:32
O gatilho pull_request só cobria base=main, mas a proteção de branch em
develop exige o check "Lint + Unit Tests". PRs contra develop nunca
disparavam o workflow, deixando o check obrigatório permanentemente pendente.
@lmoraesdev
lmoraesdev merged commit 5a17103 into develop Jul 22, 2026
2 checks passed
@lmoraesdev lmoraesdev mentioned this pull request Jul 22, 2026
@lmoraesdev
lmoraesdev deleted the fix/outbox-relay-blockers branch July 23, 2026 01:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant